package chapter05.s02system;

//4．gc()方法
// 在Java中，当一个对象成为垃圾后仍会占用内存空间，时间一长，就会导致内存空间的不足。
// 针对这种情况，Java中引入了垃圾回收机制。
// 有了这种机制，程序员不需要过多关心垃圾对象回收的问题，Java虚拟机会自动回收垃圾对象所占用的内存空间。

// 除了等待Java虚拟机进行自动垃圾回收外，还可以通过调用System.gc()方法通知Java虚拟机立即进行垃圾回收。
// 当一个对象在内存中被释放时，它的finalize()方法会被自动调用

class Person {
    // 下面定义的finalize方法会在垃圾回收前被调用
    public void finalize() {
        System.out.println("对象将被作为垃圾回收...");
    }
}

public class Example13 {
    public static void main(String[] args) throws InterruptedException {
        // 下面是创建了两个Person对象
        Person p1 = new Person();
        Person p2 = new Person();
        // 下面将变量置为null，让对象成为垃圾
        p1 = null;
        p2 = null;
        // 调用方法进行垃圾回收
        System.gc();

        // 等待5s
        Thread.sleep(5000);
    }
}
